const router = require('koa-router')()

router.get('/', async (ctx, next) => {
    await ctx.render('index', {
        title: 'Hello Koa 2!'
    })
})

router.get('/string', async (ctx, next) => {
    ctx.body = 'koa2 string'
})

router.get('/json', async (ctx, next) => {
    //此处增加一个关于session的使用，如果仅在app.js中设置了session却没有被引用的话，APP中的设置被理解为没有用故而不生效，只要有一处引用了，即可生效
    const session = ctx.session
    if (session.viewNum == null) {
        session.viewNum = 0
    }
    session.viewNum++
  
    ctx.body = {
        title: 'koa2 json',
        viewNum: session.viewNum
    }
})

//jsonTest用于jest测试使用
router.get('/jsonTest', async (ctx, next) => {

    ctx.body = {
        title: 'koa2 json test',
    }
})

//get方式传递参数，以下两个为URL中传递参数ß
// http://localhost:3000/profile/zhangsan
router.get('/profile/:userName',async (ctx, next) =>{
    const { userName } = ctx.params
    ctx.body = {
        title: 'This is a profile!',
        userName
    }
})

// http://localhost:3000/loadMore/zhangsan/4
router.get('/loadMore/:userName/:pageIndex',async (ctx, next) =>{
    const { userName, pageIndex } = ctx.params
    ctx.body = {
        title: 'This is a profile!',
        userName,
        pageIndex
    }
})

// POST方式传递及获取参数
router.post('/login',async (ctx, next) =>{
    const { userName, passWord } = ctx.request.body

    //验证登录逻辑
    ctx.body = {
        title: 'This is a post !',
        userName,
        passWord
    }
})
module.exports = router
